package response

import (
	"encoding/json"
	"jgyApi/server/model/system"


)

type GanKanInfoResponse struct {
	Qid      string `gorm:"column:qid;type:char(13);not null;comment:用户qid用于生成赶考uid" json:"qid"`
	Avatar   string `gorm:"column:avatar;type:varchar(255);not null;comment:用户赶考头像" json:"avatar"`
	Username string `gorm:"column:username;type:varchar(255);not null;comment:赶考用户名称" json:"username"`
	Grade    int64  `gorm:"column:grade;type:tinyint;not null;comment:年纪【1~12；1表示1年纪 以此递增12表示高中三年级】" json:"garde"`
	Sex      int64  `gorm:"column:sex;type:tinyint;not null;default:1;comment:性别 【1：男 -1：女 】" json:"sex"`
	Address  string `gorm:"column:address;type:varchar(255);not null;comment:地址" json:"address"`
}

func (g *GanKanInfoResponse) MarshalBinary() (data []byte, err error) {
	return json.Marshal(g)
}

func (g *GanKanInfoResponse) UnmarshalBinary(data []byte) (err error) {
	return json.Unmarshal(data, g)
}

type ClassAndTagRes struct {
	Class []system.ContentClass `json:"class"`
	Tag   []system.ContentTag   `json:"tag"`
	TotalContent []system.SelfContent `json:"total_content"`
	Logo string          `json:"logo"`
}


type ClassAndTagResTest struct {
	ID         int64  `gorm:"column:id;type:int;primaryKey;autoIncrement:true;comment:主键id" json:"id"`
	Name       string `gorm:"column:name;type:varchar(255);not null;comment:分类名称" json:"name"`
	Type       string `gorm:"column:type;type:varchar(255);not null;comment:类型【1：视频 2：音频 3：文档 4：图片】多个之间用英文逗号隔空" json:"type"`
	//SendType   int64  `gorm:"column:send_type;type:tinyint;not null;comment:分发类型【1:批次 2:子账号 3:批次和子账号】" json:"send_type"`
	Icon       string `gorm:"column:icon;type:varchar(255);not null;comment:图标" json:"icon"`
	//BatchIds   string `gorm:"column:batch_ids;type:varchar(255);not null;comment:批次id，多个用英文逗号隔开" json:"batch_ids"`
	//ChildAdmin string `gorm:"column:child_admin;type:varchar(255);not null;comment:子账户id (auth_admin的主键）多个用英文逗号隔开" json:"child_admin"`
	//AdminID    int64  `gorm:"column:admin_id;type:int;not null;comment:创建人" json:"admin_id"`
	//CreateTime int64  `gorm:"column:create_time;type:int;not null;comment:添加时间" json:"create_time"`
	//UpdateTime int64  `gorm:"column:update_time;type:int;not null;comment:更新时间" json:"update_time"`
	//Del        int64  `gorm:"column:del;type:tinyint;not null;default:-1;comment:是否删除【1：是 -1：否】" json:"del"`
	ContentCollect contentCollectRes `json:"content_collect"`
}

type contentCollectRes struct {
	ID         int64  `gorm:"column:id;type:int;primaryKey;autoIncrement:true;comment:主键id" json:"id"`
	Name       string `gorm:"column:name;type:varchar(255);not null;comment:标签名称" json:"name"`
	Type       string `gorm:"column:type;type:varchar(255);not null;comment:类型【1：视频 2：音频 3：文档 4：图片】多个之间用英文逗号隔空" json:"type"`
	Icon       string `gorm:"column:icon;type:varchar(255);not null;comment:图标" json:"icon"`
	//AdminID    int64  `gorm:"column:admin_id;type:int;not null;comment:创建人" json:"admin_id"`
	ClassID    int64  `gorm:"column:class_id;type:int;not null;comment:content_class表主键id" json:"class_id"`
	//CreateTime int64  `gorm:"column:create_time;type:int;not null;comment:添加时间" json:"create_time"`
	//UpdateTime int64  `gorm:"column:update_time;type:int;not null;comment:更新时间" json:"update_time"`
	Del        int64  `gorm:"column:del;type:tinyint;not null;default:-1;comment:是否删除【1：是 -1：否】" json:"del"`
}

type EyesConfigRes struct {
	ID               int64  `gorm:"column:id;type:int unsigned;primaryKey;autoIncrement:true;comment:主键id" json:"id"`
	FiveSn           string `gorm:"column:five_sn;type:char(5);not null;comment:前5位sn" json:"five_sn"`
	ModelName        string `gorm:"column:model_name;type:varchar(255);not null;comment:产品型号" json:"model_name"`
	Distance         int64  `gorm:"column:distance;type:tinyint;not null;default:-1;comment:距感护眼 【1：可见  -1：隐藏】" json:"distance"`
	Light            int64  `gorm:"column:light;type:tinyint;not null;default:-1;comment:光感护眼 【1：可见 -1：隐藏】" json:"light"`
	Reversal         int64  `gorm:"column:reversal;type:tinyint;not null;default:-1;comment:反转提醒 【1：可见 -1：隐藏】" json:"reversal"`
	Shake            int64  `gorm:"column:shake;type:tinyint;not null;default:-1;comment:抖动提醒 【1：可见 -1：隐藏】" json:"shake"`
	BlackWhite       int64  `gorm:"column:black_white;type:tinyint;not null;default:-1;comment:黑白阅读 【1：可见   -1：隐藏】" json:"black_white"`
	ColorTemperature int64  `gorm:"column:color_temperature;type:tinyint;not null;default:-1;comment:色温调节 【1：可见 -1：隐藏】" json:"color_temperature"`
	Tired            int64  `gorm:"column:tired;type:tinyint;not null;default:-1;comment:疲劳提醒 【1：可见 -1：隐藏】" json:"tired"`
	EyeExercises     int64  `gorm:"column:eye_exercises;type:tinyint;not null;default:-1;comment:眼保健操模块 【1：可见   -1：隐藏】" json:"eye_exercises"`
	AdminID          int64  `gorm:"column:admin_id;type:int unsigned;not null;comment:创建人" json:"admin_id"`
}


func (e *EyesConfigRes) MarshalBinary() (data []byte, err error) {
	return json.Marshal(e)
}

func (e *EyesConfigRes) UnmarshalBinary(data []byte) (err error) {
	return json.Unmarshal(data, e)
}

type SelfContentRes struct {
	ContentID      int64   `gorm:"column:content_id;type:int unsigned;primaryKey;autoIncrement:true;comment:主键id" json:"content_id"`
	ContentName    string  `gorm:"column:content_name;type:varchar(255);not null;comment:文件名" json:"content_name"`
	ContentType    int64   `gorm:"column:content_type;type:tinyint;not null;comment:文件类型 【1：视频 2：音频 3：文档】" json:"content_type"`
	ContentSize    int64   `gorm:"column:content_size;type:int;not null;comment:文件大小" json:"content_size"`
	ContentExplain string  `gorm:"column:content_explain;type:varchar(255);not null;comment:说明" json:"content_explain"`
	ContentURL     string  `gorm:"column:content_url;type:varchar(255);not null;comment:文件下载地址" json:"content_url"`
	Sort           int64   `gorm:"column:sort;type:smallint;not null;comment:排序" json:"sort"`
	SendType       *int64  `gorm:"column:send_type;type:tinyint;comment:分发方式 【1：批次 2：子账号  3:批次与子账号】" json:"send_type"`
	BatchIds       string  `gorm:"column:batch_ids;type:varchar(255);not null;comment:批次id 多个之间用英文逗号隔开" json:"batch_ids"`
	ChildAdmin     string  `gorm:"column:child_admin;type:varchar(255);not null;comment:子账号id 多个之间用英文逗号隔开" json:"child_admin"`
	ClassIds       string  `gorm:"column:class_ids;type:varchar(255);not null;comment:内容分类id 多个之间用英文逗号隔开" json:"class_ids"`
	TagIds         string  `gorm:"column:tag_ids;type:varchar(255);not null;comment:标签id 多个之间用英文逗号隔开" json:"tag_ids"`
	CollectIds     *string `gorm:"column:collect_ids;type:varchar(255);comment:合集id 多个之间用英文逗号隔开" json:"collect_ids"`
	SuitableGrade  string  `gorm:"column:suitable_grade;type:char(4);not null;comment:适配学龄段" json:"suitable_grade"`
	PlatterID      string  `gorm:"column:platter_id;type:varchar(255);not null;comment:platter表id 多个之间用英文逗号隔开" json:"platter_id"`
	AdminID        int64   `gorm:"column:admin_id;type:int;not null;comment:创建人" json:"admin_id"`
	UploadType     int64   `gorm:"column:upload_type;type:tinyint;not null;default:1;comment:上传方式 【1: 上传新内容 2：选择已上传内容 3：选择厂商上传内容】" json:"upload_type"`
	RelationID     int64   `gorm:"column:relation_id;type:int;not null;comment:upload_type为1时为本表content_id 为2时为course表主键id" json:"relation_id"`
	ReadSnNum      int64   `gorm:"column:read_sn_num;type:int;not null;comment:已查阅设备数" json:"read_sn_num"`
}


